home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / emacs.lha / emacs-19.16 / etc / emacs.bash < prev    next >
Text File  |  1993-05-01  |  1KB  |  46 lines

  1. # This defines a bash command named `edit' which contacts/resumes an
  2. # existing emacs or starts a new one if none exists.
  3. #
  4. # One way or another, any arguments are passed to emacs to specify files
  5. # (provided you have loaded `resume.el').
  6. #
  7. # This function assumes the emacs program is named `emacs' and is somewhere
  8. # in your load path.  If either of these is not true, the most portable
  9. # (and convenient) thing to do is to make an alias called emacs which
  10. # refers to the real program, e.g. 
  11. #
  12. #        alias emacs=/usr/local/bin/gemacs
  13. #
  14. # Written by Noah Friedman.
  15.  
  16. function edit ()
  17. {
  18.  local windowsys="${WINDOW_PARENT+sun}"
  19.  
  20.  windowsys="${windowsys:-${DISPLAY+x}}"
  21.  
  22.  if [ -n "${windowsys:+set}" ]; then
  23.     # Do not just test if these files are sockets.  On some systems
  24.     # ordinary files or fifos are used instead.  Just see if they exist.
  25.     if [ -e "${HOME}/.emacs_server" -o -e "/tmp/esrv${UID}-"* ]; then
  26.        emacsclient "$@"
  27.        return $?
  28.     else
  29.        echo "edit: starting emacs in background..." 1>&2
  30.     fi
  31.  
  32.     case "${windowsys}" in
  33.       x ) (emacs "$@" &) ;;
  34.       sun ) (emacstool "$@" &) ;;
  35.     esac
  36.  else   
  37.     if jobs %emacs 2> /dev/null ; then
  38.        echo "$(pwd)" "$@" > ${HOME}/.emacs_args && fg %emacs
  39.     else
  40.        emacs "$@"
  41.     fi
  42.  fi
  43. }
  44.  
  45.  
  46.